1. Technical Field of the Invention
The present invention relates to multiprocessor computer systems on a decentralized ring that performs passive message ordering.
2. Background Art
Multiprocessor computer systems have included buses that allow communication between processors, and between a chipset and the processors (each of which are referred to as nodes). To avoid contention on the bus, a central arbiter, which may be in the chipset, determines which node on the bus may transmit a message on the bus. A message on the bus is broadcast to each node on the bus and each node receives the message essentially at the same time. Therefore, there is no confusion as to the order in which the messages are transmitted.
Ring topologies have been developed in which each node is connected to an adjacent node on a ring. In a point-to-point ring, each node is separated from adjacent nodes on the ring by links (conductors). An advantage of rings are that the drivers of conductors on the ring are loaded only with the receiver circuitry of the particular node, not all nodes on the system. Accordingly, the signals may change state significantly faster.
Each node may transmit messages to each other node, but the messages are passed sequentially from node to node, rather than from a central point to all nodes simultaneously. Accordingly, none of the links can be observed by all the nodes. Ordinarily, a node will not know that another node has transmitted a message until it is received. If more than one node concurrently transmits messages, they will be received in different orders by different nodes. For messages such as snoop requests, this will lead to incorrect results.
Accordingly, there is a need for a system to order messages such that each node orders messages consistently.
In some embodiments, a computer system includes nodes connected through conductors to form a ring. Messages are transmitted on the ring and at least some of the nodes each include control circuitry to receive the messages in a node reception order that is different for each node and order the messages in a global order that is the same for each node having the control circuitry.